package behavior.observer.self;

/**
 * 战争被观察者
 */
public interface WarfareSubject {



        /**
        * 增加士兵
        */
        void add();

        /**
        * 减少士兵
        */
        void remove();

        Integer getSoldierCount();

        /**
        * 添加观察者
        *
        * @param observer
        */
        void addObserver(WarfareObserver observer);

        /**
        * 删除观察者
        *
        * @param observer
        */
        void deleteObserver(WarfareObserver observer);

        /**
         * 删除观察者们
         *
         * @param observer
         */
        void deleteObservers();

        /**
        * 通知观察者
        *
        * @param arg
        */
        void notifyObservers(Object arg);

}
